﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.ComponentModel.DataAnnotations;
using DB.Model;

namespace HR_ASP.ViewModel
{
    public class StanowiskoViewModel
    {
        public int ID { get; set; }

        [StringLength(30, ErrorMessage = "Maksymalna ilosc znaków 30.")]
        [Required(ErrorMessage = "Pole jest wymagane")]
        [Display(Name = "Nazwa stanowiska")]
        public string Nazwa { get; set; }
        public bool CzyZaznaczone { get; set; }

        public DzialViewModel[] Dzialy { get; set; }

        [Display(Name = "Opis")]
        [StringLength(50, ErrorMessage = "Maksymalna ilosc znaków 50.")]
        public string Opis { get; set; }

        public DateTime? DateU { get; set; }
        public DateTime? DateM { get; set; }

        public StanowiskoViewModel()
        {
        }

        public StanowiskoViewModel(Stanowisko stanowisko)
        {
            this.ID = stanowisko.ID_Stan;
            this.Nazwa = stanowisko.Nazwa;
            this.Opis = stanowisko.Opis;
            this.DateM = stanowisko.DataM;
            this.DateU = stanowisko.DataU;
            this.Dzialy = stanowisko.Dzial_Stan.Select(n => new DzialViewModel()
            {
                ID = n.Dzialy.ID_Dzial,
                Nazwa = n.Dzialy.Nazwa
            }).ToArray();
        }

        public Stanowisko GetModel(Stanowisko stanowisko)
        {
           
                stanowisko.ID_Stan = ID;
                stanowisko.Nazwa = Nazwa;
                stanowisko.Opis = Opis;
                if (this.ID == 0)
                {
                    stanowisko.DataU = DateTime.Now;
                }
                stanowisko.DataM = DateTime.Now;
            return stanowisko;
        }
    }
}